One key objective for any IT organization is to create software applications and a database infrastructure that can scale to meet growing and changing business needs. With business processes increasingly migrating to digital transactions, there is a growing organizational reliance and dependence on the IT group's ability to handle larger volumes of data and users, with less system downtime. Active-active configurations, which distributes database transactions across multiple databases, provide significant performance and scalability benefits; deliver exceptional high-availability; and enable continuous operations for not only unplanned interruptions but also planned outages such as migrations, upgrades, and systems maintenance.
In most cases, active-active replication configurations are considered to be part of a continuous availability—not a disaster recovery—plan. At the high end of traditional disaster recovery plans, there are solutions that offer an active-passive configuration where the active system assumes all the workload, but when it fails, the passive system becomes active and assumes the full workload. Under normal operating conditions, the secondary (passive) system doesn't contribute to handling the data processing load; it is twice the investment to provide the same amount of processing power as a single system. By comparison, an active-active replication configuration not only facilitates very high levels of recovery point and recovery time objectives, but it also returns value on the investment by adding capacity, flexibility, and higher performance to the operational data infrastructure.
Implementing an effective active-active replication configuration requires a thorough consideration of technologies available for enabling the data movement and sharing between the database instances. Before moving forward, an organization must understand the different use cases for active-active replication configurations and the challenges and benefits of each configuration. They must also understand the different methods for detecting data conflicts that occur and how to effectively resolve those conflicts.
However, implementing an active-active replication solution is not trivial. One key to success lies in real-time data movement, conflict detection and resolution, and support for heterogeneous environments. Of the three, conflict detection and resolution introduces the most complexity. In prior conflict detection and resolution (CDR) approaches, organizations needed to use either a table specific Query or a PL/SQL Procedure to resolve data conflict. For example, the table_name, column_name, etc is hard coded into each QUERY or Procedure.
Accordingly, what is desired is to solve problems relating to active-active replication, some of which may be discussed herein. Additionally, what is desired is to reduce drawbacks relating to conflict detection and resolution, some of which may be discussed herein.